package com.ruoyi.web.utils.twilio.utils;

import com.ruoyi.web.utils.twilio.config.TwilioConfig;
import com.twilio.Twilio;
import com.twilio.rest.api.v2010.account.Message;
import com.twilio.type.PhoneNumber;
import lombok.AllArgsConstructor;
import lombok.Data;
import org.springframework.stereotype.Component;

/**
 * Twilio服务
 *
 * @since 2023/4/3 18:30
 */
@Data
@Component
@AllArgsConstructor
public class TwilioSender {
    private TwilioConfig twilioConfig;

    /**
     * 发送短信
     *
     * @param to      收件人手机号
     * @param content 内容
     * @return {@link Message} 消息
     * @since 2023/4/3 18:49
     */
    public Message sendSms(String to, String content) {
        Twilio.init(twilioConfig.getAccountSid(), twilioConfig.getAuthToken());

        return Message.creator(new PhoneNumber(to),
                        twilioConfig.getMessagingServiceSid(),
                        content)
                .setStatusCallback(twilioConfig.getCallbackUrl())
                .create();
    }
}
